﻿#ifndef DAMETHODEDITORPLUGINMANAGER_H
#define DAMETHODEDITORPLUGINMANAGER_H

#include <QtCore/qglobal.h>
#include "DAGlobals.h"
#include <QObject>
#include <QList>
namespace DA
{
class _DAPrivateNodePluginData;
class DAAbstractNodePlugin;
class DAAbstractNodeFactory;
/**
 * @brief 此app的插件管理类
 *
 */
class DAWorkFlowPluginManager : public QObject
{
    Q_OBJECT
    DAWorkFlowPluginManager(QObject* p = nullptr);
    ~DAWorkFlowPluginManager();

public:
    static DAWorkFlowPluginManager& instance();

    //获取所有的节点插件
    QList< DAAbstractNodePlugin* > getNodePlugins() const;

    //获取所有的节点工厂
    QList< DA::DAAbstractNodeFactory* > getNodeFactorys() const;

private:
    QList< _DAPrivateNodePluginData* > m_nodePlugins;
};
}  // namespace DA
#endif  // FCMETHODEDITORPLUGINMANAGER_H
